Authenticating a browser-less data streaming device to a network with an external browser

ABSTRACT

A system, method and computer program product for authenticating a data streaming device to a network using a browser of another computing device, such that the data streaming device is able to retrieve and/or transmit streaming content over the Internet subsequent to the authentication.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication No. 62/118,928 filed on Feb. 20, 2015, which is incorporatedby reference herein in its entirety.

FIELD

The field relates generally to data streaming devices, and morespecifically to connecting the data streaming devices without a browserto a network using a browser of another computing device.

BACKGROUND

When a data streaming device is configured to access a wireless network,the data streaming device streams data. However, when the data streamingdevice attempts to access another wireless network, an entity that ownsor controls that wireless network may first require authentication ofthe data streaming device.

BRIEF SUMMARY

System, method, and computer program product embodiments, andcombinations and sub-combinations thereof, for enabling a data streamingdevice without a browser to provide authentication information to aserver that authenticates the data streaming device are disclosed. In anembodiment, the data streaming device establishes a connection to acomputing device that includes a browser. Next, the data streamingdevice uses the browser of the computing device to provideauthentication information to a server. The server uses theauthentication information to determine whether the data streamingdevice has access to a network. Successful authentication enables thedata streaming device to stream content over the network.

Further features and advantages of embodiments, as well as the structureand operation of various embodiments, are described in detail below withreference to the accompanying drawings. It is noted that the embodimentsare not limited to the specific embodiments described herein. Suchembodiments are presented herein for illustrative purposes only.Additional embodiments will be apparent to persons skilled in therelevant art(s) based on the teachings contained herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are incorporated herein and form a part of thespecification.

FIGS. 1A-1C are block diagrams of systems that include a data streamingdevice, according to various embodiments.

FIG. 2 is a flowchart of a method for connecting a data streaming deviceto a network, according to an embodiment.

FIG. 3 is a flowchart of a method for authenticating a data streamingdevice to a server with a browser of another computing device, accordingto an embodiment.

FIG. 4 is a flowchart of a method for authenticating a data streamingdevice to a server, according to an embodiment.

FIG. 5 is an exemplary computing device where the contemplatedembodiments can be implemented.

In the drawings, like reference numbers generally indicate identical orsimilar elements. Additionally, generally, the left-most digit(s) of areference number identifies the drawing in which the reference numberfirst appears.

DETAILED DESCRIPTION

Provided herein are system, method and/or computer program productembodiments, and/or combinations and sub-combinations thereof, forauthenticating a browser-less data streaming device to a network with abrowser of another computing device.

When a data streaming device is configured to access a wireless network,the data streaming device streams content. However, when a datastreaming device is portable, the data streaming device may attempt toaccess another wireless network, such as but not limited to a network ata hotel or other organization. An entity that owns, controls, and/ormanages the other wireless network may first require authentication ofthe data streaming device. In an embodiment, the data streaming deviceauthentication may be implemented using a browser that is loaded andexecuted on the data streaming device. The browser may transmitauthentication information to an entity that controls the wirelessnetwork access. Example authentication information may include payment,user credentials, acceptance of terms and conditions for network usage,viewing an advertisement, answering a questionnaire, etc. Once theentity authenticates the data streaming device, the data streamingdevice can connect to the network and stream content.

However, using a browser on a data streaming device has severaldeficiencies. For example, a browser is an evolving software applicationand requires constant software updates, because, for example, theHyperText Markup Language (“HTML”) standard improves and changes.Additionally, a browser that executes on the data streaming deviceutilizes resources, including processor and memory that may otherwise beused to stream content.

Example embodiments for addressing the above deficiencies are describedbelow.

FIG. 1A is a block diagram 100A of a system where example embodimentsmay be implemented.

In an embodiment, block diagram 100 includes a data streaming device102. Data streaming device 102 may be a computing device that providesstreaming content, such as, video, audio, multimedia, etc., content,over a network, such as the Internet, to a television set 104. Exampledata streaming device 102 may be a streaming stick or a streamingplayer. Video content may include movies, television episodes,commercials, video games, on-demand video content, and Internet content,to name a few examples.

In an embodiment, data streaming device 102 connects to a television set104 or another device that includes a display screen, using for examplean HDMI (High-Definition Multimedia Interface), composite cables orother connecting means. HDMI is a proprietary audio/video interface fortransferring uncompressed video data and also for transferringcompressed and/or uncompressed audio data between HDMI compliantdevices.

In an embodiment, data streaming device 102 may be a portable devicethat may be transported to different locations and be connected totelevision set 104 or another device that displays streaming content atone of these different locations. For example, data streaming device 102may be carried from a home of a user to a hotel when a user travels andbe connected to a television set at the hotel to stream content.

In an embodiment, data streaming device 102 and television set 104 maybe combined into a single device (not shown).

In an embodiment, to obtain streaming content over a network, datastreaming device 102 may utilize one or more local and global networks,such as a local network 106 and a global network 108. In an embodiment,local network 106 may be a Wi-Fi or WiFi network, or a wireless localarea network (“WLAN”) that connects to global network 108. In anotherembodiment, local network 106 may be connected to global network 108 viaan Ethernet cable or other wireless means such as Bluetooth®. In anembodiment, data streaming device 102 connects to local network 106 toaccess general network 108. Further, a person skilled in the art willappreciate that these connectivity examples are exemplary and that otherwired and wireless connection types to connect to networks 106 and 108may be used.

In an embodiment, global network 108 may be a global system ofinterconnected computer networks, such as the Internet, that connectsbillions computing devices worldwide. These computing devices may alsobe part of private, public, academic, business, and government networksand include an extensive amounts of information and resources, and maybe sources of streaming content that data streaming device 102 canstream to television set 104.

In an embodiment, content distribution system 109 may store anddistribute streaming content, such as streaming content 111. Contentdistribution system 109 may be database storage or another non-volatilestorage discussed, for example, in detail in FIG. 5, and that storesdata for one or more computing devices connected to global network 108.Content distribution system 109 is adapted to store large amounts ofdata from multiple sources and in combination with one or more webservers or other servers adapted for selecting and distributingstreaming content 111 over global network 108.

In an embodiment, data streaming device 102 along with numerous othercomputing devices 110 may use local network 106 to connect and obtaindata from global network 108. Non-limiting example computing devices 110may include personal computers, laptop computers, smartphones,video-game consoles, tablet computers, digital cameras, and digitalaudio players.

In a further embodiment, data streaming device 102 may also communicatewith computing device 110 via a network 107. Network 107 may be awireless network or a wired network.

In a further embodiment, local network 106 may be under ownership and/orcontrol of and/or managed by an entity different from a user of datastreaming device 102. This entity may control access of data streamingdevice 102 and computing device 110 to local network 106. For example,an entity may be a hotel that may own and/or operate local network 106and allows data streaming devices 102 and computing devices 110 ofcustomers of the hotel to access local network 106. In an embodiment, anentity may allow free access, paid access and/or access subject to theterms and condition, for data streaming devices 110 to local network106. In another embodiment, the entity may also categorize differentcustomers for free or paid access to local network 106. Other exampleentities that may own local network 106 may include a café, a school, auniversity, a hospital, a business, etc.

In an embodiment, data streaming device 102 may connect to local network106 wirelessly, using an Ethernet, or another way that is known to aperson skilled in the relevant art.

In an embodiment, an entity may use a web server or another server,referred to as server 112 to determine which devices, including datastreaming device 102 and computing device 110 can access local network106. Server 112 is a computing device or application that executes onone or more computing devices that authenticates data streaming device102 and computing device 110 for access to local network 106. In anembodiment, server 112 under control of a hotel may require a roomnumber, a customer's name, and a predetermined fee, if any, toauthenticate data streaming device 102 and computing device 110, beforegranting access to these devices to local network 106. In anotherexample, server 112 may require a user of data streaming device 102 andcomputing device 110 to agree to the terms and conditions beforegranting access to these devices to local network 106. Once server 112authenticates data streaming device 102 or computing device 110, datastreaming device 102 or computing device 110 may use local network 106to access global network 108, including Internet to obtain and streamcontent.

In an embodiment, computing device 110 may include a web browser 114 orsimply browser 114. Browser 114 is a software application forretrieving, displaying and transmitting information and resourcesbetween computing device 110 and server 112, as well as other devices inglobal network 108. A resource may be a web page, an image, a video orother type of content that may be stored or accessed by browser 114using a Uniform Resource Identifier (URI) or a Unified Resource Locator(URL).

In an embodiment, computing device 110 may use browser 114 forauthentication to local network 106. For example, browser 114 thatexecutes on computing device 110 may transmit an authentication requestto server 112, where the authentication request requests access toglobal network 108 through local network 106. In response to the accessrequest, server 112 transmits a response message that includes a URI andwhich causes browser 114 to display the resource on computing device110. The resource may be a web page that includes information requiredto authenticate computing device 110. The information that is requiredfor authentication is referred to as authentication information.

In an embodiment, an authentication process may be instituted when datastreaming device 102 detects a captive portal. For example, browser 114may issue a Hypertext Transfer Protocol (“HTTP”) or Domain Name System(“DNS”) query that attempts to access a resource in global network 108.When server 112 receives an access request from browser 114, server 112may redirect the query to an authentication page stored on server 112and send a response message to browser 114 that includes theauthentication page with authentication information required by server112. Browser 114 then displays the authentication page that requiresauthentication information on computing device 110. When computingdevice 110 receives the requested authentication information, which mayinclude a room number, payment information or name of the user ofcomputing device 110, to give a few examples, browser 114 transmits theauthentication information to server 112. Server 112 authenticates theauthentication information and, if authentication is successful, server112 grants computing device 110 access to global network 108. In anembodiment, server 112 grants access to computing device 110 byterminating the captive portal and stopping the redirects of HTTP/DNSqueries to the authentication page or allowing computing device 110 toreceive requested information from global network 108. If authenticationis unsuccessful, server 112 continues to transmit the authenticationrequest to browser 114.

In an embodiment, server 112 tracks an authenticated computing device110 and/or data streaming device 102. For example, server 112 stores aunique media access control address (MAC address) of the authenticateddevices until the authenticated time period, if any, expires, and thedevices require another authentication. Typically, each computing device110 and data streaming device 102 have a unique MAC address.

In an embodiment, when data streaming device 102 does not includebrowser 114, data streaming device 102 may use browser 114 of computingdevice 110 to obtain authentication information. Alternatively, datastreaming device 102 may also use other devices for authentication thatare known to a person skilled in the art, including near fieldcommunication (“NFC”) devices, Bluetooth® devices, and radio frequencyidentification (“RFID”) devices, to name a few examples, to receive theauthentication information. Once authenticated, data streaming device102 may obtain access to local network 106 and global network 108.

For example, a customer in a hotel may connect data streaming device 102to the hotel's television set and then use computing device 110 toauthenticate data streaming device 102 to the hotel's local network.Upon a successful authentication, a customer may use global network 108to obtain streaming content 111 and display the streaming content 111 onthe hotel's television set.

In an embodiment, there may be several reasons against including abrowser on data streaming device 102. For example, a browser may requiresoftware updates or upgrades as HTML standards continue to evolve, extramemory storage for storing a browser within data streaming device 102and additional processing power for execution.

In an embodiment, prior to using browser 114 for authentication, datastreaming device 102 may determine whether data streaming device 102 canaccess content, such as a web page, stored in global network 108. Ifdata streaming device 102 can access the content, then data streamingdevice 102 does not require authentication using browser 114. In anembodiment data streaming device 102 may use a default URI or URL toaccess content stored within global network 108, such as“http://abc123.com/networktest”. The default URI or URL stores contentthat is expected by data streaming device 102. For example, if datastreaming device 102 receives an expected response, such as an “InternetUP!” message, then data streaming device 102 assumes that it can accessglobal network 108. On the other hand, if in response to a request for adefault URI or URL, data streaming device 102 receives a response thatincludes a HTTP redirect to a different web page or receives a web pageor message having unexpected content, that is content other than“Internet UP!”, data streaming device 102 then determines thatauthentication with server 112 may be required before data streamingdevice 102 may access content using global network 108.

In an embodiment, when data streaming device 102 requiresauthentication, data streaming device 102 uses browser 114 of computingdevice 110. To access browser 114, data streaming device 102 initiatesWiFi access point capability, which causes data streaming device todynamically switch from being a WiFi end-point device to a WiFi accesspoint device. A person skilled in the art will appreciate that a WiFiend-point device does not establish connections with other computingdevices to connect to a network, but can send and receive data over thenetwork. A person skilled in the art will also appreciate that awireless access point on a device allows wireless devices to connect toa network using WiFi or another standard. For example, data streamingdevice 102 activates WiFi access point module 116 that causes datastreaming device 102 to act as a wireless access point for othercomputing devices 110, in addition to being an end point device. In anembodiment, WiFi access point module 116 activates a P2P WiFi interface,IP routing, Dynamic Host Configuration Protocol (“DHCP”) server, andnetwork address translation (“NAT”) that allows computing device 110 toconnect to data streaming device 102. Additionally, data streamingdevice 102 may also display a message, either using television set 104or browser 114 of computing device 110 for a user to authenticate datastreaming device 102. In an embodiment, the message may be included in adialog box.

In an embodiment, computing device 110 may connect to data streamingdevice 102 using a service set identifier (“SSID”) and a security key.In an embodiment, SSID identifies a particular WiFi access point (datastreaming device 102) and security key authenticates a device (computingdevice 102) to the WiFi access point. Once data streaming device 102authenticates computing device 110, data streaming device 102 may usebrowser 114 to receive the authentication information to authenticatedata streaming device 102 to an entity, such as a hotel, café, etc.,that controls local network 106 via server 112.

In an embodiment, to be authenticated to local network 106, datastreaming device 102 acts as an intermediary between computing device110 and server 112. For example, browser 114 of computing device 110displays a web page that requests authentication information required byserver 112. As discussed above, authentication information may include apassword, a name, a payment request and/or an acceptance of terms andconditions for using local network 106. In an embodiment, the browsermay receive authentication information entered by a user through the oneof input devices coupled to computing device 110, and that is discussed,for example, in FIG. 6. In another embodiment, the browser may retrievethe authentication information from a file stored in a memory storage ofcomputing device 110. When browser 114 receives the requiredauthentication information entered using computing device 110, browser114 causes computing device 110 to transmit the authenticationinformation to data streaming device 102. In an embodiment, theauthentication information may be transmitted as one or more packets. Totrack the packets that include the authentication information, computingdevice 110 also transmits the MAC address and IP address of computingdevice 110 in one or more packets.

In an embodiment, when data streaming device 102 receives packets fromcomputing device 110, data streaming device 102 removes the MAC addressand IP address of computing device 110 from the packets and replaces theMAC address and IP address of computing device 110 with the MAC addressand IP address of data streaming device 102. Once replaced, datastreaming device 102 transmits the packets with the MAC address and IPaddress of data streaming device 102 to server 112.

In an embodiment, when server 112 receives packets, including theauthentication information from data streaming device 102, server 112authenticates the data streaming device 102. For example, server 112determines whether the username corresponds to a password, whetheruser's name and room number corresponds to a guest staying at a hotelthat controls access to local network 106, whether the paymentinformation included in the authentication information is valid andwhether server 112 is able to use the payment information to obtainpayment for accessing local network 106, or whether the authenticationinformation includes information that a user agreed to the terms andconditions required to obtain access to local network 106. Onceauthenticated, server 112 transmits packets that include status of theauthentication (for example, on whether authentication was successful orunsuccessful), the MAC address and IP address of data streaming device102 back to data streaming device 102.

In an embodiment, once data streaming device 102 receives packets fromserver 112, data streaming device 102 replaces the MAC address and IPaddress in the packets with the MAC address and IP address of computingdevice 110. Data streaming device 102 then transmits the packets tocomputing device 110.

In an embodiment, once computing device 110 receives the packets fromdata streaming device 102, browser 114 of computing device 110 retrievesauthentication information in the packets and displays to a user whetherauthentication with server 112 was successful. This way, a user usingcomputing device 110 is able to visually determine whether datastreaming device 102 was able to obtain access to local network 106.Upon successful authentication, data streaming device 102 may use localnetwork 106 to connect to global network 108 to access and streamcontent. If authentication was unsuccessful, computing device 110 maydisplay another request to a user to enter authentication information.In another embodiment, computing device 110 may decrypt theauthentication status prior to displaying the status.

In a further embodiment, data streaming device 102 may also storeauthentication information that data streaming device 102 received fromcomputing device 110. For example, computing device 110 may transmitunencrypted authentication information that data streaming device 102may store in a memory storage within or accessible to data streamingdevice 102. Example memory storage is discussed in detail in FIG. 5.This way, data streaming device 102 may retransmit authenticationinformation to server 112 in the event server 112 requires anotherauthentication. In an embodiment, data streaming device 102 waits untilauthentication is successful before storing authentication information.

In an embodiment, once server 112 authenticates data streaming device102, data streaming device 102 deactivates WiFi access point module 116which causes data streaming device 102 to disconnect from computingdevice 110. After the deactivation, data streaming device 102 serves asan end point device that requests and receives streaming content 111from global network 108.

In an embodiment, when data streaming device 102 is connected to globalnetwork 108, data streaming device 102 may continuously query thedefault URI or URL discussed above. When data streaming device 102 canno longer access the default URL, data streaming device 102 mayre-authenticate itself with server 112. In one embodiment, tore-authenticate itself with server 102, data streaming device 102 mayretrieve authentication information stored in a memory accessible todata streaming device 102 and resubmit the authentication information toserver 112 for authentication. In another embodiment, to re-authenticateitself with server 112, data streaming device 102 activates WiFi accesspoint module 116 to access computing device 110 and uses browser 114 ofcomputing device 110 to receive and transmit authentication information.

FIG. 1B is a block diagram 100B of a system including a data streamingdevice, according to an embodiment. As discussed above, data streamingdevice 102 communicates with computing device 110 via a network 107,such as networks 107A and/or 107B. Network 107A is a wireless networkthat allows data streaming device 102 to wirelessly connect to computingdevice 110 using WiFi Access Point Module 116. In an embodiment, network107A may also be implemented using wireless standards other than WiFi.In another embodiment, network 107A may use Bluetooth® tethering toconnect data streaming device 102 and computing device 110.

In another embodiment, network 107B allows data streaming device 102 toconnect to computing device 110 using a cable, that allows informationto be communicated between data streaming device 102 and computingdevice 110. Example cables may include a Universal Serial Bus (“USB”)cable or High-Definition Multimedia Interface (“HDMI”).

FIG. 1C is a block diagram 100C of a system that includes a datastreaming device, according to an embodiment.

In an embodiment, when data streaming device 102 does not includebrowser 114, data streaming device 102 may use browser 114 of computingdevice 110 for authentication, as described above. In addition orinstead of browser 114, computing device 110 may use other applicationsand/or software, or a combination of applications and/or software,collectively referred to as data input and transmission interface 118,to receive authentication information on behalf of data streaming device102, retrieve authentication information from one or more memorystorages discussed in FIG. 5 coupled to computing device 110 andtransmit the authentication information to data streaming device 102.

In another embodiment, as part of data input and transmission interface118, data streaming device 102 and computing device 110 may be enabledwith NFC or Bluetooth® technology. NFC or Bluetooth® technology allowsdata streaming device 102 and computing device 110 to passauthentication information to each other using radio signals and do notrequire wireless network 107A.

As discussed above, data streaming device 102 authenticates theauthentication information with server 112 over local network 106. Whendata streaming device 102 receives authentication information fromcomputing device 110 or from the memory storage within data streamingdevice 102 (not shown), data streaming device 102 formats theauthentication information in packets. Data streaming device 102 thenincludes MAC address and IP address information in the packets, suchthat server 112 receives the packets with MAC address and IP address ofdata streaming device 110, and not of computing device 110. Becauseserver 112 does not detect the MAC address and IP address of computingdevice 110 though data streaming device 102, computing device 110 may beable to directly connect to server 112.

In an embodiment, once data streaming device 102 receives packets fromserver 112, data streaming device 102 replaces the MAC address and IPaddress in the packets with the MAC address and IP address of computingdevice 110 before propagating the packets to computing device 110. Datastreaming device 102 then transmits the packets to computing device 110.

In an embodiment, data streaming device 102 may also storeauthentication information as authentication information 120. Datastreaming device 102 may store authentication information 120 withinmemory storage included in data streaming device 102 or coupled to datastreaming device 102. Once authentication information 120 is stored inthe memory storage in or accessible to data steaming device 102, datastreaming device 102 may use authentication information 120 to reconnectwith local network 106 when data streaming device 102 loses access toglobal network 108, and without connecting to computing device 110 toobtain the authentication information.

In a further embodiment, data streaming device 102 stores authenticationinformation 120 after server 112 grants access to data streaming device102 to local network 106, and ensures that authentication information120 is valid information.

In a further embodiment, authentication information 120 may be encryptedor non-encrypted information. For example, when authenticationinformation 120 is encrypted, data streaming device 120 may storeauthentication information 120 without decrypting the authenticationinformation, and propagate authentication information 120 to server 112as needed.

FIG. 2 is a flowchart of a method 200 for authenticating a datastreaming device to a server, according to an embodiment.

At operation 202, a determination is made whether data streaming devicehas access to a global network. For example, data streaming device 102queries a default resource, such as a default web page, stored in globalnetwork 108. If in response to the query, data streaming device 102receives the resource with expected content, data streaming device 102determines that it has access to global network 108 and the flowchartends. In an embodiment, when data streaming device 102 has access toglobal network 108, data streaming device 102 may repeat operation 202at preconfigured time intervals to ensure that data streaming device 102maintains network access. If data streaming device 102 receives aresponse to a query with unexpected content or is rerouted to anotherURI, data streaming device 102 determines that there is no access toglobal network 108 and proceeds to operation 204.

At operation 204, a WiFi access point is initialized. For example, datastreaming device 102 activates WiFi access point module 116 and becomesa WiFi access point for computing devices 110, in addition to being anend point device. As discussed above, WiFi access point module 116activates P2P WiFi interface, IP routing, DHCP server and NAT.

At operation 206, a connection between the data streaming device and acomputing device is established. For example, computing device 110 usesSSID and security key to authenticate itself to data streaming device102.

At operation 208, the data streaming device uses a browser of thecomputing device for server authentication of the data streaming device.For example, data streaming device 102 uses browser 114 of computingdevice 110 to obtain authentication information and transmit theauthentication information to server 112, as well as determine whetherauthentication with server 112 was successful. The details of datastreaming device 102 authentication are discussed in method 300.

At operation 210, the data streaming device is connected from thecomputing device. For example, upon successful authentication, WiFiaccess point module 116 disables NAT and data streaming device 102becomes an end point device.

At operation 212, steaming content is retrieved and/or transmitted usingthe data streaming device. For example, data streaming device 102receives streaming content 111 stored within global network 108. Afteroperation 212, data streaming device 102 may repeat operation 202 atpreconfigured time intervals to determine whether there is continuousaccess to global network 108 and whether another authentication toserver 112 is required.

FIG. 3 is a flowchart of a method 300 for authenticating a datastreaming device to a server using a browser of another computingdevice, according to an embodiment.

At operation 302, authentication information is entered by a user on abrowser. For example, browser 114 of computing device 110 connected todata streaming device 102 receives authentication information from auser. As discussed above, authentication information may include usercredentials, payment information, and/or terms and conditions foraccessing global network 108 via server 112.

At operation 304, the authentication information is transmitted to thedata streaming device. For example, data streaming device 102 receivespackets that include authentication information from browser 114 ofcomputing device 110. In an embodiment, the received packets include theMAC address and IP address of computing device 110.

At operation 306, the authentication information is transmitted to aserver. For example, when packets arrive from computing device 110, datastreaming device 102 replaces MAC address and IP address of computingdevice 110 in the packets with MAC address and IP address of datastreaming device 102, and transmits the packets to server 112.

In an embodiment, operations 304 and 306 represent how a packet travelsfrom browser 114 to data streaming device 102 to server 112.

At operation 308, authentication information authenticates the datastreaming device on the server and transmits the result of theauthentication. For example, server 112 receives packets withauthentication information and authenticates data streaming device 102.Once server 112 completes the authentication, server 112 transmitspackets with the authentication status to data streaming device 102. Inan embodiment, these packets include the MAC address and IP address ofdata streaming device 102.

At operation 310, the authentication status is transmitted to thecomputing device. For example, data streaming device 102 receivespackets from server 112 and replaces the MAC address and IP address inthe received packets with the MAC address and IP address of computingdevice 110. Data streaming device 102 then transmits the packets tocomputing device 110.

In an embodiment, operations 308 and 310 represent how a packet travelsfrom server 112 to data streaming device 102 to computing device 110.

At operation 312, a browser of a computing device displays theauthentication status. For example, computing device 110 receivespackets from data streaming device 102 and uses browser 114 to displaythe authentication status included in the packets. If the authenticationis successful, data streaming device 102 receives streaming content 111from global network 108.

FIG. 4 is a flowchart of a method 400 for authenticating a datastreaming device to a server, according to an embodiment. In anembodiment, data streaming device 102 may use method 400 forauthentication when data streaming device 102 stores the authenticationinformation in the memory storage included or coupled to data streamingdevice 102.

At operation 402, a determination is made whether data streaming devicehas access to a global network. For example, data streaming device 102queries a default resource, such as a default web page, accessible usingglobal network 108. If in response to the query, data streaming device102 receives the resource with expected content, data streaming device102 determines that it has access to global network 108 and theflowchart ends. If data streaming device 102 receives a response to aquery with unexpected content or is rerouted to another URI, datastreaming device 102 determines that there is no access to globalnetwork 108 and proceeds to operation 404.

At operation 404, a determination is made whether data streaming devicehas stored therein or access to the authentication information. Forexample, data streaming device 102 may query the memory storage includedor coupled to data streaming device 102 (such as via a memory stick orcard). If data streaming device 102 includes or otherwise has access tothe authentication information, the flowchart proceeds to operation 406.Otherwise the flowchart moves to operation 204.

At operation 406, the data streaming device formats authenticationinformation. For example, data streaming device 102 formats theauthentication information into packets and attaches the MAC address andIP address of data streaming device 102 to the packets.

At operation 408, the data streaming device transmits the authenticationinformation to a server. For example, data streaming device transmitsthe authentication information to server 112, where server 112authenticates data streaming device 102 to local network 106.

At operation 410, the data streaming device receives a status of theauthentication from a server. For example, server 112 transmits amessage to data streaming device 102 that includes the status ofauthentication.

At operation 412, the data streaming device determines theauthentication status. For example, if server 112 authenticates datastreaming device 102 using the authentication information, the flowchartproceeds to operation 414. In a embodiment, data streaming device 104may determine authentication status when authentication information isnot encrypted and without forwarding the authentication information tocomputing device 110. When authentication information is encrypted, datastreaming device 102 may forward the authentication information tocomputing device 110. If the server does not authenticate data streamingdevice 102, the flowchart proceeds to operation 204 where the datastreaming device 102 obtains authentication information from computingdevice 110, and re-authenticates with server 112.

At operation 414, the data streaming device receives the streamingcontent. For example, data streaming device 102 receives streamingcontent 111 stored within global network 108.

Various embodiments can be implemented, for example, using one or morewell-known computer systems or one or more components included incomputer system 500 shown in FIG. 5. Computer system 500 can be anywell-known computer capable of performing the functions describedherein.

Computer system 500 includes one or more processors (also called centralprocessing units, or CPUs), such as a processor 504. Processor 504 isconnected to a communication infrastructure or bus 506.

One or more processors 504 may each be a graphics processing unit (GPU).In an embodiment, a GPU is a processor that is a specialized electroniccircuit designed to process mathematically intensive applications. TheGPU may have a parallel structure that is efficient for parallelprocessing of large blocks of data, such as mathematically intensivedata common to computer graphics applications, images, videos, etc.

Computer system 500 also includes user input/output device(s) 530, suchas monitors, keyboards, pointing devices, etc., that communicate withcommunication infrastructure 506 through user input/output interface(s)502.

Computer system 500 also includes a main or primary memory 508, such asrandom access memory (RAM). Main memory 508 may include one or morelevels of cache. Main memory 508 has stored therein control logic (i.e.,computer software) and/or data.

Computer system 500 may also include one or more secondary storagedevices or memory 510. Secondary memory 510 may include, for example, ahard disk drive 512 and/or a removable storage device or drive 514.Removable storage drive 514 may be a floppy disk drive, a magnetic tapedrive, a compact disk drive, an optical storage device, tape backupdevice, and/or any other storage device/drive.

Removable storage drive 514 may interact with a removable storage unit518. Removable storage unit 518 includes a computer usable or readablestorage device having stored thereon computer software (control logic)and/or data. Removable storage unit 518 may be a floppy disk, magnetictape, compact disk, DVD, optical storage disk, and/or any other computerdata storage device. Removable storage drive 514 reads from and/orwrites to removable storage unit 518 in a well-known manner.

According to an exemplary embodiment, secondary memory 510 may includeother means, instrumentalities or other approaches for allowing computerprograms and/or other instructions and/or data to be accessed bycomputer system 500. Such means, instrumentalities or other approachesmay include, for example, a removable storage unit 522 and an interface520. Examples of the removable storage unit 522 and the interface 520may include a program cartridge and cartridge interface (such as thatfound in video game devices), a removable memory chip (such as an EPROMor PROM) and associated socket, a memory stick and USB port, a memorycard and associated memory card slot, and/or any other removable storageunit and associated interface.

Computer system 500 may further include a communication or networkinterface 524. Communication interface 524 enables computer system 500to communicate and interact with any combination of remote devices,remote networks, remote entities, etc. (individually and collectivelyreferenced by reference number 528). For example, communicationinterface 524 may allow computer system 500 to communicate with remotedevices 528 over communications path 526, which may be wired and/orwireless, and which may include any combination of LANs, WANs, theInternet, etc. Control logic and/or data may be transmitted to and fromcomputer system 500 via communication path 526.

In an embodiment, a tangible apparatus or article of manufacturecomprising a tangible computer useable or readable medium having controllogic (software) stored thereon is also referred to herein as a computerprogram product or program storage device. This includes, but is notlimited to, computer system 500, main memory 508, secondary memory 510,and removable storage units 518 and 522, as well as tangible articles ofmanufacture embodying any combination of the foregoing. Such controllogic, when executed by one or more data processing devices (such ascomputer system 500), causes such data processing devices to operate asdescribed herein.

Based on the teachings contained in this disclosure, it will be apparentto persons skilled in the relevant art(s) how to make and useembodiments of the invention using data processing devices, computersystems and/or computer architectures other than that shown in FIG. 5.In particular, embodiments may operate with software, hardware, and/oroperating system implementations other than those described herein.

It is to be appreciated that the Detailed Description section, and notthe Summary and Abstract sections (if any), is intended to be used tointerpret the claims. The Summary and Abstract sections (if any) may setforth one or more but not all exemplary embodiments of the invention ascontemplated by the inventor(s), and thus, are not intended to limit theinvention or the appended claims in any way.

While the invention has been described herein with reference toexemplary embodiments for exemplary fields and applications, it shouldbe understood that the invention is not limited thereto. Otherembodiments and modifications thereto are possible, and are within thescope and spirit of the invention. For example, and without limiting thegenerality of this paragraph, embodiments are not limited to thesoftware, hardware, firmware, and/or entities illustrated in the figuresand/or described herein. Further, embodiments (whether or not explicitlydescribed herein) have significant utility to fields and applicationsbeyond the examples described herein.

Embodiments have been described herein with the aid of functionalbuilding blocks illustrating the implementation of specified functionsand relationships thereof. The boundaries of these functional buildingblocks have been arbitrarily defined herein for the convenience of thedescription. Alternate boundaries can be defined as long as thespecified functions and relationships (or equivalents thereof) areappropriately performed. Also, alternative embodiments may performfunctional blocks, steps, operations, methods, etc. using orderingsdifferent than those described herein.

References herein to “one embodiment,” “an embodiment,” “an exampleembodiment,” or similar phrases, indicate that the embodiment describedmay include a particular feature, structure, or characteristic, butevery embodiment may not necessarily include the particular feature,structure, or characteristic. Moreover, such phrases are not necessarilyreferring to the same embodiment. Further, when a particular feature,structure, or characteristic is described in connection with anembodiment, it would be within the knowledge of persons skilled in therelevant art(s) to incorporate such feature, structure, orcharacteristic into other embodiments whether or not explicitlymentioned or described herein.

The breadth and scope of the invention should not be limited by any ofthe above-described exemplary embodiments, but should be defined only inaccordance with the following claims and their equivalents.

What is claimed is:
 1. A data streaming device, comprising: one or morememories; and one or more processors communicatively coupled to the oneor more memories and configured to: establish a connection with acomputing device that includes a data input and transmission interface;query, by the data streaming device, a default resource on a networkprior to using a browser on the computing device for authentication;receive a response from the default resource responsive to the query;compare the received response to a previously stored response, wherein amatch between the received response and the stored response indicatesconnectivity between the data streaming device and the network, and amismatch indicates that authentication is required for connectivitybetween the data streaming device and the network; provide, using thebrowser of the computing device, authentication information required toauthenticate the data streaming device and enable the data streamingdevice to obtain access to the network responsive to determination ofthe mismatch, wherein successful authentication enables the datastreaming device to stream content over the network.
 2. The datastreaming device of claim 1, wherein to establish the connection withthe computing device the one or more processors are further configuredto cause the data streaming device to dynamically become a WiFi accesspoint during authentication of the data streaming device.
 3. The datastreaming device of claim 1, wherein the one or more processors arefurther configured to: receive the authentication information from thecomputing device.
 4. The data streaming device of claim 3, wherein theone or more processors are further configured to query the defaultresource at preconfigured time intervals.
 5. The data streaming deviceof claim 1, wherein the one or more processors are further configured toensure that a server that grants access to the network authenticates thedata streaming device using the MAC (media access control) address andIP (Internet protocol) address of the data streaming device.
 6. The datastreaming device of claim 5, herein the one or more processors areconfigured to: receive a packet from the computing device; replace a MACaddress and IP address of the computing device from the packet with theMAC address and IP address of the data streaming device; and transmitthe packet with the replaced MAC address and IP address to the server.7. The data streaming device of claim 1, wherein the one or moreprocessors are further configured to: store the authenticationinformation entered using the data input and transmission interface inthe one or more memories of the data streaming device; and use thestored authentication information for subsequent network authentication.8. The data streaming device of claim 7, wherein the one or moreprocessors are further configured to: transmit the stored authenticationinformation to a server; determine when the data streaming device isgranted access to the network using the stored authenticationinformation; based on the determination, establish a second connectionwith the computing device; and receive an updated authenticationinformation from the computing device, where the updated authenticationinformation authenticates the data streaming device to the network. 9.The data streaming device of claim 1, wherein the network includes theInternet and a local WiFi network and wherein the data streaming deviceretrieves the streaming content over the Internet and the data streamingdevice authenticates with the local WiFi network to access the Internet.10. A method, comprising: establishing, by a data streaming device, aconnection with a computing device that includes a data input andtransmission interface; querying by the data streaming device, a defaultresource on a network prior to using a browser on the computing devicefor authentication; receiving a response from the default resourceresponsive to the query; comparing the received response to a previouslystored response, wherein a match between the received response and thestored response indicates connectivity between the data streaming deviceand the network, and a mismatch indicates that authentication isrequired for connectivity between the data streaming device and thenetwork; and providing, using the browser of the computing device,authentication information required to authenticate the data streamingdevice and enable the data streaming device to obtain access to thenetwork responsive to determination of the mismatch, wherein successfulauthentication enables the data streaming device to stream content overthe network.
 11. The method of claim 10, where establishing theconnection with the computing device further comprises causing the datastreaming device to dynamically become a WiFi access point duringauthentication of the data streaming device.
 12. The method of claim 10,further comprising: receiving the authentication information from thecomputing device.
 13. The method of claim 12, further comprising:querying the default resource at preconfigured time intervals.
 14. Themethod of claim 10, further comprising: ensuring that a server thatgrants access to the network authenticates the data streaming deviceusing the MAC address and IP address of the data streaming device. 15.The method of claim 10, further comprising: storing the authenticationinformation entered using the data input and transmission interface inthe one or more memories of the data streaming device; and using thestored authentication information for subsequent network access.
 16. Themethod of claim 15, further comprising: transmitting the storedauthentication information to a server; determining when the datastreaming device is granted access to the network using the storedauthentication information; based on the determining, establishing asecond connection with the computing device that includes a browser;receiving an updated authentication information from the computingdevice; and authenticating the data streaming device to the networkusing the updated authentication information.
 17. The method of claim10, wherein the network includes the Internet and a local WiFi networkand wherein the data streaming device retrieves the streaming contentover the Internet, and the data streaming device authenticates with thelocal WiFi network to access the Internet.
 18. A non-transitory computerreadable medium having instructions stored thereon, that when executedby one or more processors cause the one or more processors to performoperations, the operations comprising: establishing, by a data streamingdevice, a connection with a computing device that includes a browser;querying, by the data streaming device, a default resource on a networkprior to using a browser on the computing device for authentication;receiving a response from the default resource responsive to the query;comparing the received response to a previously stored response, whereina match between the received response and the stored response indicatesconnectivity between the data streaming device and the network, and amismatch indicates that authentication is required for connectivitybetween the data streaming device and the network; and receiving, fromthe browser of the computing device, authentication information requiredto authenticate the data streaming device and enable the data streamingdevice to obtain access to the network responsive to determination ofthe mismatch, wherein successful authentication enables the datastreaming device to stream content over the network.
 19. The computerreadable medium of claim 18, wherein the one or more processors arefurther configured to perform the operations comprising: connecting,using the WiFi access point, to the computing device, wherein the WiFiaccess point is active during authentication of the data streamingdevice; and receiving the authentication information from the computingdevice.